import validate from "@/utils/validate";

let validUsername = (msg)=>{
    let error = "请输入包含6-12英文字母数字的用户名";
    if(!validate.isEmptyString(msg)){
        error = msg;
    }
    return (rule, value, callback) => {
        if (validate.isEmptyString(value)) {
            callback();
            return;
        }
        if (!validate.checkUsername(value)) {
            callback(new Error(error));
        } else {
            callback();
        }
    };
}

let validPassword = (msg)=>{
    let error = "请输入包含6-12英文字母数字的密码";
    if(!validate.isEmptyString(msg)){
        error = msg;
    }
    return (rule, value, callback) =>{
        if(validate.isEmptyString(value)){
            callback();
            return;
        }
        if (!validate.checkPassword(value)) {
            callback(new Error(error));
        } else {
            callback();
        }
    };
}

let validEmail = (msg)=>{
    let error = "请输入正确的Email";
    if(!validate.isEmptyString(msg)){
        error = msg;
    }
    return (rule, value, callback)=>{
        if(validate.isEmptyString(value)){
            callback();
            return;
        }
        if (!validate.checkEmail(value)) {
            callback(new Error(error));
        } else {
            callback();
        }
    };
}

let validPhone = (msg)=>{
    let error = "请输入正确的电话号码";
    if(!validate.isEmptyString(msg)){
        error = msg;
    }
    return (rule, value, callback)=> {
        if (validate.isEmptyString(value)) {
            callback();
            return;
        }
        if (!validate.checkPhone(value)) {
            callback(new Error(error));
        } else {
            callback();
        }
    };
}

let validMobile = (msg)=>{
    let error = "请输入正确的手机号码";
    if(!validate.isEmptyString(msg)){
        error = msg;
    }
    return  (rule, value, callback)=> {
        if (validate.isEmptyString(value)) {
            callback();
            return;
        }
        if (!validate.checkMobile(value)) {
            callback(new Error(error));
        } else {
            callback();
        }
    };
}

export default {
    validUsername:validUsername,
    validPassword:validPassword,
    validEmail:validEmail,
    validPhone:validPhone,
    validMobile:validMobile
}